home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
dev
/
lang
/
SmallEiffel.lha
/
SmallEiffel
/
bin_c
/
compile_to_jvm22.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-22
|
40KB
|
1,942 lines
/*
-- ANSI C code generated by :
-- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79) --
-- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
-- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
-- http://www.loria.fr/SmallEiffel --
*/
#include "compile_to_jvm.h"
T0* r277jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}
/*No:TYPE_CLASS.start_position*/
void r277jvm_initialize_local(T277* C,T2 a1){
/*[IF*/
if(r277is_reference(C)){
/*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
/*]*/
}
else{
r23jvm_expanded_push_default((T23*)(r277run_class(C)));
}
/*FI]*/
/*[IRF3.6jvm_write_local*/{T2 b1=a1;
r28opcode_astore((T28*)(oBC12code_attribute),b1);
}/*]*/
}
void r277used_as_reference(T277* C){
/*[IF*/
if(r277is_expanded(C)){
r23used_as_reference((T23*)(r277run_class(C)));
}
/*FI]*/
}
/*No:TYPE_CLASS.is_user_expanded*/
T2 r277id(T277* C){
T2 R=0;
R=((T63*)(r277base_class(C)))->_id/*0*/;
return R;
}
/*No:TYPE_CLASS.is_pointer*/
/*No:TYPE_CLASS.jvm_check_class_invariant*/
T0* r277to_runnable(T277* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
_bc=r70base_class((T70*)((C)->_base_class_name/*4*/));
/*[IF*/
if(((((T63*)_bc))->_is_expanded/*20*/)&&(!(r66fast_has((T66*)(oBC277check_memory),_bc)))){
r66add_last((T66*)(oBC277check_memory),_bc);
r23set_at_run_time((T23*)(r277run_class(C)));
}
/*FI]*/
/*[IF*/
if(((((T63*)_bc))->_formal_generic_list/*28*/)!=((void*)(NULL))){
r21add_position(((T96*)((((T63*)_bc))->_formal_generic_list/*28*/))->_start_position/*0*/);
r21add_type((T0*)C,((T0*)ms277_50344));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
R=(T0*)C;
return R;
}
T0* r277run_class(T277* C){
T0* R=NULL;
R=r22run_class((T0*)C);
return R;
}
void r277standard_jvm_check_class_invariant(T277* C){
/*[IF*/
if(r76invariant_check((T76*)(oBC12run_control))){
r23jvm_check_class_invariant((T23*)(r277run_class(C)));
}
/*FI]*/
}
/*No:TYPE_CLASS.is_like_current*/
/*No:TYPE_CLASS.is_bit*/
/*No:TYPE_CLASS.jvm_write_local*/
T0* r277smallest_ancestor(T277* C,T0* a1){
T0* R=NULL;
T0* _bc=NULL;
T0* _rto_bc=NULL;
T0* _pl2=NULL;
T0* _pl1=NULL;
T0* _rto=NULL;
_rto=X52run_type(a1);
/*[IF*/
if(X52is_none(a1)){
R=(T0*)C;
}
else if(X52is_any(_rto)){
R=_rto;
}
else{
_rto_bc=X52base_class(_rto);
_bc=r277base_class(C);
/*[IF*/
if((_rto_bc)==((void*)(_bc))){
R=(T0*)C;
}
else if(r63is_subclass_of(((T63*)_rto_bc),_bc)){
R=(T0*)C;
}
else if(r63is_subclass_of(((T63*)_bc),_rto_bc)){
R=_rto;
}
else if((X52is_expanded(_rto))&&(!(r277is_expanded(C)))){
R=X52smallest_ancestor(_rto,(T0*)C);
}
else{
_pl1=(((T63*)_bc))->_parent_list/*40*/;
_pl2=(((T63*)_rto_bc))->_parent_list/*40*/;
/*[IF*/
if(((_pl1)==((void*)(NULL)))||((_pl2)==((void*)(NULL)))){
R=r277type_any();
}
else if((/*(IRF4.6count*/(((T83*)((((T81*)_pl2))->_list/*12*/)))->_upper/*8*//*)*/)==(1)){
R=X52smallest_ancestor(((T82*)(/*(IRF4.6super*/r83first(((T83*)((((T81*)_pl2))->_list/*12*/)))/*)*/))->_type/*4*/,(T0*)C);
}
else if((/*(IRF4.6count*/(((T83*)((((T81*)_pl1))->_list/*12*/)))->_upper/*8*//*)*/)==(1)){
R=X52smallest_ancestor(((T82*)(/*(IRF4.6super*/r83first(((T83*)((((T81*)_pl1))->_list/*12*/)))/*)*/))->_type/*4*/,a1);
}
else{
R=r81smallest_ancestor(((T81*)_pl1),(T0*)C);
R=X52smallest_ancestor(R,a1);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:TYPE_CLASS.run_time_mark*/
T6 r277is_expanded(T277* C){
T6 R=0;
R=((T63*)(r277base_class(C)))->_is_expanded/*20*/;
return R;
}
/*No:TYPE_CLASS.jvm_if_x_eq*/
void r277jvm_xnewarray(T277* C){
T2 _idx=0;
/*[IF*/
if(r277is_reference(C)){
_idx=((T29*)(oBC12constant_pool))->_idx_jvm_root_class/*12*/;
}
else{
_idx=r23jvm_constant_pool_index((T23*)(r277run_class(C)));
}
/*FI]*/
r28opcode_anewarray((T28*)(oBC12code_attribute),_idx);
}
/*No:TYPE_CLASS.jvm_push_local*/
/*No:TYPE_CLASS.fz_dot*/
/*No:TYPE_CLASS.is_like_feature*/
T6 r277is_a(T277* C,T0* a1){
T6 R=0;
T0* _obcn=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
_obcn=X52base_class_name(a1);
/*[IF*/
if(((((T70*)_bcn))->_to_string/*0*/)==((void*)((((T70*)_obcn))->_to_string/*0*/))){
R=1;
}
else if(r70is_subclass_of(((T70*)_bcn),_obcn)){
/*[IF*/
if(X52is_generic(a1)){
R=r63is_a_vncg((T63*)(r70base_class(((T70*)_bcn))),(T0*)C,a1);
}
else{
R=1;
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if(!(R)){
r21add_type((T0*)C,((T0*)ms13_17730));
r21add_type(a1,((T0*)ms13_47));
}
/*FI]*/
return R;
}
/*No:TYPE_CLASS.written_mark*/
/*No:TYPE_CLASS.is_character*/
/*No:TYPE_CLASS.make*/
T2 r277jvm_convert_to(T277* C,T0* a1){
T2 R=0;
/*[IF*/
if(r277is_reference(C)){
/*[IF*/
if(X52is_reference(a1)){
R=1;
}
else{
R=X52jvm_expanded_from_reference(a1,(T0*)C);
}
/*FI]*/
}
else if(X52is_reference(a1)){
r277jvm_to_reference(C);
R=1;
}
else{
R=1;
}
/*FI]*/
return R;
}
void r277fatal_error_generic_list(T277* C){
r21add_type((T0*)C,((T0*)ms52_29184));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*No:TYPE_CLASS.is_array*/
T2 r277jvm_push_default(T277* C){
T2 R=0;
R=1;
/*[IF*/
if(r277is_reference(C)){
/*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
/*]*/
}
else{
r23jvm_expanded_push_default((T23*)(r277run_class(C)));
}
/*FI]*/
return R;
}
T6 r277is_dummy_expanded(T277* C){
T6 R=0;
/*[IF*/
if(r277is_expanded(C)){
R=(r23writable_attributes((T23*)(r277run_class(C))))==((void*)(NULL));
}
/*FI]*/
return R;
}
T0* r277generic_list(T277* C){
T0* R=NULL;
r277fatal_error_generic_list(C);
return R;
}
T0* r277base_class(T277* C){
T0* R=NULL;
T0* _bcn=NULL;
_bcn=(C)->_base_class_name/*4*/;
/*[IF*/
if((_bcn)!=((void*)(NULL))){
R=r70base_class(((T70*)_bcn));
}
else{
/*[IRF3.6append*/{T0* b1=((T0*)ms52_37098);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type((T0*)C,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
return R;
}
/*No:TYPE_CLASS.jvm_if_x_ne*/
/*No:TYPE_CLASS.base_class_name*/
/*No:TYPE_CLASS.fz_jvm_root*/
void r277jvm_standard_is_equal(T277* C){
T0* _wa=NULL;
T0* _rc=NULL;
_rc=r277run_class(C);
_wa=r23writable_attributes(((T23*)_rc));
r24std_is_equal(_rc,_wa);
}
/*No:TYPE_CLASS.is_formal_generic*/
T6 r277is_a_in(T277* C,T0* a1,T0* a2){
T6 R=0;
T0* _ct=NULL;
T0* _t2=NULL;
T0* _t1=NULL;
/*[IF*/
if((/*(IRF4.6written_mark*/(((T70*)((C)->_base_class_name/*4*/)))->_to_string/*0*//*)*/)==((void*)(X52written_mark(a1)))){
R=1;
}
else{
_ct=(((T23*)a2))->_current_type/*0*/;
_t1=r277to_runnable(C,_ct);
_t2=X52to_runnable(a1,_ct);
/*[IF*/
if((X52run_time_mark(_t1))==((void*)(X52run_time_mark(_t2)))){
R=1;
}
else{
R=X52is_a(_t1,_t2);
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r277look_up_for(T277* C,T0* a1,T0* a2){
T0* R=NULL;
R=r63look_up_for((T63*)(r277base_class(C)),a1,a2);
return R;
}
void r277jvm_to_reference(T277* C){
/*[IF*/
if(r277is_expanded(C)){
r23jvm_to_reference((T23*)(r277run_class(C)));
}
/*FI]*/
}
/*No:TYPE_CLASS.run_type*/
T0* r277expanded_initializer(T277* C){
T0* R=NULL;
/*[IF*/
if(r277is_expanded(C)){
R=r63expanded_initializer((T63*)(r277base_class(C)),(T0*)C);
}
/*FI]*/
return R;
}
T6 r277has_creation(T277* C,T0* a1){
T6 R=0;
R=r63has_creation((T63*)(r277base_class(C)),a1);
return R;
}
/*No:TYPE_CLASS.jvm_method_flags*/
/*No:TYPE_CLASS.is_boolean*/
/*No:TYPE_CLASS.is_generic*/
/*No:TYPE_CLASS.jvm_xaload*/
/*No:TYPE_CLASS.is_real*/
T0* r277jvm_root_descriptor(void){
if(fBC12jvm_root_descriptor==0){
fBC12jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_descriptor=(T0*)n;
}
r7extend(((T7*)oBC12jvm_root_descriptor),'L');
r7append(((T7*)oBC12jvm_root_descriptor),r277jvm_root_class());
r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
}
return oBC12jvm_root_descriptor;}
/*No:TYPE_CLASS.is_any*/
T0*oBC277check_memory=NULL;
/*No:TYPE_CLASS.is_basic_eiffel_expanded*/
void r277jvm_descriptor_in(T277* C,T0* a1){
/*[IF*/
if(r277is_reference(C)){
r7append(((T7*)a1),r277jvm_root_descriptor());
}
else{
r23jvm_type_descriptor_in((T23*)(r277run_class(C)),a1);
}
/*FI]*/
}
T0* r277type_any(void){
if(fBC12type_any==0){
fBC12type_any=1;
{T263*n=malloc(sizeof(*n));
*n=M263;
r263make(n,NULL);
oBC12type_any=(T0*)n;
}
}
return oBC12type_any;}
/*No:TYPE_CLASS.is_string*/
T6 r277is_native_array(T277* C){
T6 R=0;
T0* _tna=NULL;
_tna=(T0*)C;
if(NULL!=(_tna))switch(((T0*)_tna)->id) {
case 267:
break;
default:
_tna=NULL;
};R=(_tna)!=((void*)(NULL));
return R;
}
/*No:TYPE_CLASS.is_integer*/
/*No:TYPE_CLASS.is_anchored*/
/*No:TYPE_CLASS.is_run_type*/
T6 r277is_reference(T277* C){
T6 R=0;
R=!(((T63*)(r277base_class(C)))->_is_expanded/*20*/);
return R;
}
/*No:TYPE_CLASS.is_none*/
/*No:TYPE_CLASS.jvm_return_code*/
/*No:TYPE_CLASS.jvm_target_descriptor_in*/
/*No:TYPE_CLASS.fz_inako*/
/*No:TYPE_CLASS.jvm_xastore*/
/*No:TYPE_CLASS.is_like_argument*/
T2 r277jvm_stack_space(void){
T2 R=0;
/*[IF*/
/*AF*//*AE*/
R=1;
/*FI]*/
return R;
}
/*No:TYPE_CLASS.is_double*/
T2 r277jvm_expanded_from_reference(T0* a1){
T2 R=0;
return R;
}
/*No:PREFIX_NAME.is_frozen*/
void r145undefine_in(T145* C,T0* a1){
/*[IF*/
/*AF*//*AE*/
/*FI]*/
}
T0* r145origin_base_class(T145* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=(C)->_start_position/*8*/;
/*[IF*/
if((_sp)!=((void*)(NULL))){
R=r59base_class(((T59*)_sp));
}
/*FI]*/
return R;
}
/*No:PREFIX_NAME.start_position*/
/*No:PREFIX_NAME.to_string*/
void r145declaration_in(T145* C,T0* a1){
r7append(((T7*)a1),((T0*)ms13_7614a));
r7extend(((T7*)a1),'\40');
r7extend(((T7*)a1),'\42');
r7append(((T7*)a1),(C)->_to_string/*4*/);
r7extend(((T7*)a1),'\42');
}
/*No:PREFIX_NAME.to_key*/
void r145error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r145make(T145* C,T0* a1,T0* a2){
C->_to_string=r86item(a1);
C->_start_position=a2;
C->_to_key=r86for_prefix((C)->_to_string/*4*/);
}
/*No:PREFIX_NAME.fz_prefix*/
/*No:E_VOID.static_value*/
/*No:E_VOID.is_static*/
/*No:E_VOID.can_be_dropped*/
/*No:E_VOID.is_manifest_string*/
/*No:E_VOID.start_position*/
T0* r160add_comment(T160* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
/*No:E_VOID.compile_target_to_jvm*/
T2 r160to_integer(T160* C){
T2 R=0;
r160error((C)->_start_position/*4*/,((T0*)ms13_45846));
return R;
}
/*No:E_VOID.use_current*/
/*No:E_VOID.jvm_branch_if_true*/
/*No:E_VOID.to_runnable*/
T2 r160compile_to_jvm_into(T0* a1){
T2 R=0;
R=1;
/*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_aconst_null*/r28opcode((T28*)(oBC12code_attribute),1,1);
/*]*/
/*]*/
return R;
}
/*No:E_VOID.isa_dca_inline_argument*/
/*No:E_VOID.is_pre_computable*/
/*No:E_VOID.fz_iinaiv*/
int fBC160result_type=0;
T0*oBC160result_type=NULL;
T0* r160result_type(void){
if(fBC160result_type==0){
fBC160result_type=1;
{T273*n=malloc(sizeof(*n));
*n=M273;
r273make(n,NULL);
oBC160result_type=(T0*)n;
}
}
return oBC160result_type;}
void r160error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:E_VOID.make*/
/*No:E_VOID.compile_to_jvm_assignment*/
/*No:E_VOID.is_current*/
/*No:E_VOID.is_void*/
/*No:E_VOID.compile_to_jvm_old*/
/*No:E_VOID.jvm_assign*/
/*No:E_VOID.jvm_branch_if_false*/
/*No:E_VOID.compile_to_jvm*/
/*No:E_VOID.afd_check*/
/*No:E_VOID.is_result*/
/*No:RENAME_PAIR.new_name*/
/*No:RENAME_PAIR.old_name*/
void r90make(T90* C,T0* a1,T0* a2){
/*[IF*/
if((X50to_string(a1))==((void*)(X50to_string(a2)))){
r21add_position(X50start_position(a1));
r21add_position(X50start_position(a2));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms90_91800);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
C->_old_name=a1;
C->_new_name=a2;
}
/*No:RENAME_PAIR.fatal_error*/
/*No:FROZEN_FEATURE_NAME.is_frozen*/
/*No:FROZEN_FEATURE_NAME.feature_name*/
void r320undefine_in(T320* C,T0* a1){
/*[IF*/
{/*AT*/r320error(r320start_position(C),((T0*)ms50_117530));
r63fatal_undefine(((T63*)a1),(T0*)C);
}
/*FI]*/
}
T0* r320origin_base_class(T320* C){
T0* R=NULL;
T0* _sp=NULL;
_sp=r320start_position(C);
/*[IF*/
if((_sp)!=((void*)(NULL))){
R=r59base_class(((T59*)_sp));
}
/*FI]*/
return R;
}
T0* r320start_position(T320* C){
T0* R=NULL;
R=X50start_position((C)->_feature_name/*4*/);
return R;
}
T0* r320to_string(T320* C){
T0* R=NULL;
R=X50to_string((C)->_feature_name/*4*/);
return R;
}
void r320declaration_in(T320* C,T0* a1){
X50declaration_in((C)->_feature_name/*4*/,a1);
}
T0* r320to_key(T320* C){
T0* R=NULL;
R=X50to_key((C)->_feature_name/*4*/);
return R;
}
void r320error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
/*No:FROZEN_FEATURE_NAME.make*/
/*No:STD_OUTPUT.put_new_line*/
/*No:STD_OUTPUT.flush*/
void r33put_string(T33* C,T0* a1){
T2 _i=0;
_i=1;
while (!((_i)>((((T7*)a1))->_count/*4*/))) {
/*[IRF3.6put_character*/{T33* C1=C;
T3 b1=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
putc(b1,((FILE*)(stdout)));
}/*]*/
_i=(_i)+(1);
}
}
/*No:STD_OUTPUT.make*/
/*No:STD_OUTPUT.put_character*/
T0*oBC34tmp_string=NULL;
void r33put_integer(T33* C,T2 a1){
/*[IRF3.3clear*/((((T7*)((T7*)(oBC34tmp_string))))->_count)=(0);
/*]*/
r2append_in(a1,oBC34tmp_string);
r33put_string(C,oBC34tmp_string);
}
/*No:LOOP_VARIANT_2.nb_errors*/
/*No:LOOP_VARIANT_2.tag*/
T0* r249start_position(T249* C){
T0* R=NULL;
R=X109start_position((C)->_expression/*8*/);
return R;
}
T0* r249twin(T249* C){
T0* R=NULL;
R=malloc(sizeof(*C));
*((T249*)R)=*C;
return R;
}
/*No:LOOP_VARIANT_2.expression*/
T6 r249use_current(T249* C){
T6 R=0;
R=X109use_current((C)->_expression/*8*/);
return R;
}
T0* r249to_runnable(T249* C,T0* a1){
T0* R=NULL;
T0* _e=NULL;
/*[IF*/
if(((C)->_current_type/*12*/)==((void*)(NULL))){
C->_current_type=a1;
_e=X109to_runnable((C)->_expression/*8*/,a1);
/*[IF*/
if((_e)==((void*)(NULL))){
r249error(r249start_position(C),((T0*)ms246_20400));
}
else{
C->_expression=_e;
/*[IF*/
if(!(X52is_integer(X109result_type((C)->_expression/*8*/)))){
r249error(X109start_position((C)->_expression/*8*/),((T0*)ms246_86602));
}
/*FI]*/
}
/*FI]*/
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
R=(T0*)C;
}
/*FI]*/
}
else{
R=r249twin(C);
/*[IRF3.3set_current_type*/((((T249*)(((T249*)R))))->_current_type)=(NULL);
/*]*/
R=r249to_runnable(((T249*)R),a1);
}
/*FI]*/
return R;
}
/*No:LOOP_VARIANT_2.set_current_type*/
/*No:LOOP_VARIANT_2.current_type*/
void r249error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r249make(T249* C,T0* a1,T0* a2,T0* a3){
C->_comment=a3;
C->_tag=a1;
C->_expression=a2;
}
/*No:LOOP_VARIANT_2.comment*/
void r249afd_check(T249* C){
X109afd_check((C)->_expression/*8*/);
}
T2 r133static_value(T133* C){
T2 R=0;
/*[IF*/
if(X109is_void((C)->_target/*4*/)){
R=r133static_eq_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else if(X109is_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
R=r133static_eq_void((C)->_target/*4*/);
}
else if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
/*[IF*/
if((X109static_value((C)->_target/*4*/))==(X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
R=1;
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_EQ.feature_name*/
T6 r133is_static(T133* C){
T6 R=0;
/*[IF*/
if(X109is_void((C)->_target/*4*/)){
R=r133is_static_eq_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else if(X109is_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
R=r133is_static_eq_void((C)->_target/*4*/);
}
else if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
R=1;
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_EQ.is_manifest_string*/
void r133jvm_void_cmp(T0* a1){
T2 _space=0;
T2 _point2=0;
T2 _point1=0;
T0* _rt=NULL;
_rt=X52run_type(X109result_type(a1));
/*[IF*/
if(X52is_expanded(_rt)){
X109compile_to_jvm(a1);
_space=X52jvm_stack_space(_rt);
while (!((_space)==(0))) {
/*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
/*]*/
_space=(_space)-(1);
}
/*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
/*]*/
}
else{
X109compile_to_jvm(a1);
_point1=r28opcode_ifnull((T28*)(oBC12code_attribute));
/*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
/*]*/
_point2=r28opcode_goto((T28*)(oBC12code_attribute));
r28resolve_u2_branch(_point1);
/*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
/*]*/
r28resolve_u2_branch(_point2);
}
/*FI]*/
}
T0* r133start_position(T133* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
void r133error_comparison(T133* C,T0* a1,T0* a2){
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms132_9960);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=a1;
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms132_88736);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type(a2,((T0*)ms13_47));
r21print_as_fatal_error((T21*)(oBC12eh));
}
T0* r133add_comment(T133* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r133to_integer(T133* C){
T2 R=0;
r133error(r133start_position(C),((T0*)ms13_45846));
return R;
}
T6 r133use_current(T133* C){
T6 R=0;
R=(X109use_current((C)->_target/*4*/))||(X109use_current(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
return R;
}
/*No:CALL_INFIX_EQ.jvm_branch_if_true*/
T6 r133is_static_eq_void(T0* a1){
T6 R=0;
T0* _rt=NULL;
/*[IF*/
if(X109is_current(a1)){
R=1;
}
else if(X109is_manifest_string(a1)){
R=1;
}
else if(r133is_manifest_array(a1)){
R=1;
}
else{
_rt=X52run_type(X109result_type(a1));
/*[IF*/
if(X52is_expanded(_rt)){
/*[IF*/
if(X109can_be_dropped(a1)){
R=1;
}
/*FI]*/
}
else if(X109is_static(a1)){
/*[IF*/
if((X109static_value(a1))==(0)){
R=1;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T0* r133to_runnable(T133* C,T0* a1){
T0* R=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r133runnable_expression((C)->_target/*4*/,a1);
_a=r133runnable_args((C)->_arguments/*8*/,a1);
/*[IF*/
if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T133*n=malloc(sizeof(*n));
*n=M133;
r133with(n,_t,(C)->_feature_name/*12*/,_a);
R=(T0*)n;
}
}
/*FI]*/
r133check_comparison(((T133*)R),a1);
return R;
}
T2 r133static_eq_void(T0* a1){
T2 R=0;
T0* _rt=NULL;
/*[IF*/
if(X109is_current(a1)){
}
else if(X109is_manifest_string(a1)){
}
else if(r133is_manifest_array(a1)){
}
else{
_rt=X52run_type(X109result_type(a1));
/*[IF*/
if(X52is_expanded(_rt)){
/*[IF*/
if(X109can_be_dropped(a1)){
R=0;
}
/*FI]*/
}
else if(X109is_static(a1)){
/*[IF*/
if((X109static_value(a1))==(0)){
R=1;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
T2 r133compile_to_jvm_into(T133* C,T0* a1){
T2 R=0;
R=r133standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_EQ.is_pre_computable*/
/*No:CALL_INFIX_EQ.fz_bad_argument*/
/*No:CALL_INFIX_EQ.fz_iinaiv*/
/*No:CALL_INFIX_EQ.result_type*/
/*No:CALL_INFIX_EQ.run_feature*/
T0* r133runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r133standard_compile_target_to_jvm(T133* C){
r133compile_to_jvm(C);
X52jvm_check_class_invariant(/*(IRF4.8result_type*/r133type_boolean()/*)*/);
}
/*No:CALL_INFIX_EQ.compile_to_jvm_assignment*/
void r133compile_to_jvm_old(T133* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.jvm_assign*/
void r133check_comparison(T133* C,T0* a1){
T0* _at=NULL;
T0* _tt=NULL;
/*[IF*/
if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
_tt=X52run_type(X109result_type((C)->_target/*4*/));
_at=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
/*[IF*/
if(X52is_none(_tt)){
/*[IF*/
if(X52is_expanded(_at)){
X52used_as_reference(_at);
}
/*FI]*/
}
else if(X52is_none(_at)){
/*[IF*/
if(X52is_expanded(_tt)){
X52used_as_reference(_tt);
}
/*FI]*/
}
else if(X52is_reference(_tt)){
/*[IF*/
if(X52is_reference(_at)){
/*[IF*/
if(X52is_a(_tt,_at)){
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(X52is_a(_at,_tt)){
}
else{
r133error_comparison(C,((T0*)ms132_46246),a1);
}
/*FI]*/
}
/*FI]*/
}
else if(!(X52is_a(_at,_tt))){
r133error_comparison(C,((T0*)ms132_41670),a1);
}
else{
X52used_as_reference(_at);
}
/*FI]*/
}
else{
/*[IF*/
if(X52is_expanded(_at)){
/*[IF*/
if(X52is_basic_eiffel_expanded(_at)){
/*[IF*/
if(X52is_a(_tt,_at)){
}
else{
/*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
/*]*/
/*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
/*]*/
/*]*/
/*[IF*/
if(X52is_a(_at,_tt)){
}
else{
r133error_comparison(C,((T0*)ms132_37791),a1);
}
/*FI]*/
}
/*FI]*/
}
else if(X52is_bit(_tt)){
r133bit_limitation(C,_tt,_at);
}
else if(!(X52is_a(_at,_tt))){
r133error_comparison(C,((T0*)ms132_37791a),a1);
}
/*FI]*/
}
else if(!(X52is_a(_tt,_at))){
r133error_comparison(C,((T0*)ms132_42138),a1);
}
else{
X52used_as_reference(_tt);
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.jvm_branch_if_false*/
void r133bit_limitation(T133* C,T0* a1,T0* a2){
T0* _b2=NULL;
T0* _b1=NULL;
_b1=a1;
if(NULL!=(_b1))switch(((T0*)_b1)->id) {
case 280: case 282:
break;
default:
_b1=NULL;
};_b2=a2;
if(NULL!=(_b2))switch(((T0*)_b2)->id) {
case 280: case 282:
break;
default:
_b2=NULL;
};/*[IF*/
if((X281nb(_b1))!=(X281nb(_b2))){
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6append*/{T0* b1=((T0*)ms132_21261);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21add_type(_b1,((T0*)ms132_1930));
r21add_type(_b2,((T0*)ms132_383757));
r21print_as_fatal_error((T21*)(oBC12eh));
}
/*FI]*/
}
void r133compile_to_jvm(T133* C){
T0* _rc=NULL;
T0* _rt=NULL;
T2 _point2=0;
T2 _point1=0;
T2 _space=0;
/*[IF*/
if(X109is_void((C)->_target/*4*/)){
r133jvm_void_cmp(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
else if(X109is_void(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/)){
r133jvm_void_cmp((C)->_target/*4*/);
}
else{
_rt=X52smallest_ancestor(X109result_type((C)->_target/*4*/),X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
_space=X109compile_to_jvm_into((C)->_target/*4*/,_rt);
_space=X109compile_to_jvm_into(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/,_rt);
/*[IF*/
if(X52is_user_expanded(_rt)){
_rc=X52run_class(_rt);
r24std_is_equal(_rc,r23writable_attributes(((T23*)_rc)));
}
else{
_point1=X52jvm_if_x_eq(_rt);
/*[IRF3.4opcode_iconst_0*/r28opcode((T28*)(oBC12code_attribute),3,1);
/*]*/
_point2=r28opcode_goto((T28*)(oBC12code_attribute));
r28resolve_u2_branch(_point1);
/*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
/*]*/
r28resolve_u2_branch(_point2);
}
/*FI]*/
}
/*FI]*/
}
/*No:CALL_INFIX_EQ.arg_count*/
void r133with(T133* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
}
/*No:CALL_INFIX_EQ.us_eq*/
/*No:CALL_INFIX_EQ.is_result*/
/*No:CALL_INFIX_EQ.fatal_error*/
/*No:CALL_INFIX_EQ.nb_errors*/
int fBC12type_boolean=0;
T0*oBC12type_boolean=NULL;
T0* r133type_boolean(void){
if(fBC12type_boolean==0){
fBC12type_boolean=1;
{T268*n=malloc(sizeof(*n));
*n=M268;
r268make(n,NULL);
oBC12type_boolean=(T0*)n;
}
}
return oBC12type_boolean;}
/*No:CALL_INFIX_EQ.arguments*/
T0* r133runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_EQ.can_be_dropped*/
T6 r133is_manifest_array(T0* a1){
T6 R=0;
T0* _ma=NULL;
_ma=a1;
if(NULL!=(_ma))switch(((T0*)_ma)->id) {
case 113:
break;
default:
_ma=NULL;
};R=(_ma)!=((void*)(NULL));
return R;
}
/*No:CALL_INFIX_EQ.compile_target_to_jvm*/
/*No:CALL_INFIX_EQ.isa_dca_inline_argument*/
/*No:CALL_INFIX_EQ.arg1*/
/*No:CALL_INFIX_EQ.fz_dot*/
T2 r133jvm_standard_branch_if_false(T133* C){
T2 R=0;
r133compile_to_jvm(C);
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
/*No:CALL_INFIX_EQ.target*/
void r133error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r133make(T133* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r133operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_EQ.is_current*/
T2 r133standard_compile_to_jvm_into(T133* C,T0* a1){
T2 R=0;
r133compile_to_jvm(C);
R=X52jvm_convert_to(X52run_type(/*(IRF4.8result_type*/r133type_boolean()/*)*/),a1);
return R;
}
/*No:CALL_INFIX_EQ.is_void*/
T0* r133operator(void){
T0* R=NULL;
R=((T0*)ms14_62);
return R;
}
T2 r133jvm_standard_branch_if_true(T133* C){
T2 R=0;
r133compile_to_jvm(C);
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
void r133afd_check(T133* C){
X109afd_check((C)->_target/*4*/);
X109afd_check(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
}
/*No:CALL_INFIX_AND.static_value*/
/*No:CALL_INFIX_AND.feature_name*/
T6 r125is_static(T125* C){
T6 R=0;
/*[IF*/
if(X52is_boolean(X109result_type((C)->_target/*4*/))){
/*[IF*/
if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
R=1;
C->_static_value_mem=(X109static_value((C)->_target/*4*/))+(X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
/*[IF*/
if(((C)->_static_value_mem/*20*/)==(2)){
C->_static_value_mem=1;
}
else{
C->_static_value_mem=0;
}
/*FI]*/
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.is_manifest_string*/
T0* r125start_position(T125* C){
T0* R=NULL;
R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
return R;
}
T0* r125add_comment(T125* C,T0* a1){
T0* R=NULL;
/*[IF*/
if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
R=(T0*)C;
}
else{
{T234*n=malloc(sizeof(*n));
*n=M234;
r234make(n,(T0*)C,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r125to_integer(T125* C){
T2 R=0;
r125error(r125start_position(C),((T0*)ms13_45846));
return R;
}
T6 r125use_current(T125* C){
T6 R=0;
/*[IF*/
{/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
/*[IF*/
if(R){
}
else if(X109is_current((C)->_target/*4*/)){
R=X27use_current((C)->_run_feature/*16*/);
}
else{
R=X109use_current((C)->_target/*4*/);
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.jvm_branch_if_true*/
T0* r125to_runnable(T125* C,T0* a1){
T0* R=NULL;
T0* _rf=NULL;
T0* _tbee=NULL;
T0* _at=NULL;
T0* _tt=NULL;
T0* _a=NULL;
T0* _t=NULL;
_t=r125runnable_expression((C)->_target/*4*/,a1);
_a=r125runnable_args((C)->_arguments/*8*/,a1);
_tt=X109result_type(_t);
_at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
/*[IF*/
/*AF*//*AE*/
/*FI]*/
_rf=r125run_feature_for(C,_t,a1);
/*[IF*/
if(((C)->_run_feature/*16*/)==((void*)(NULL))){
C->_target=_t;
C->_arguments=_a;
C->_run_feature=_rf;
r125run_feature_match(C,a1);
R=(T0*)C;
}
else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
R=(T0*)C;
}
else{
{T125*n=malloc(sizeof(*n));
*n=M125;
r125with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
R=(T0*)n;
}
}
/*FI]*/
return R;
}
T2 r125compile_to_jvm_into(T125* C,T0* a1){
T2 R=0;
R=r125standard_compile_to_jvm_into(C,a1);
return R;
}
/*No:CALL_INFIX_AND.is_pre_computable*/
/*No:CALL_INFIX_AND.fz_bad_argument*/
/*No:CALL_INFIX_AND.fz_iinaiv*/
T0* r125result_type(T125* C){
T0* R=NULL;
T0* _tla=NULL;
R=X27result_type((C)->_run_feature/*16*/);
/*[IF*/
if(X52is_like_current(R)){
R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
}
else{
_tla=R;
if(NULL!=(_tla))switch(((T0*)_tla)->id) {
case 262:
break;
default:
_tla=NULL;
};/*[IF*/
if((_tla)!=((void*)(NULL))){
R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
}
/*FI]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.static_value_mem*/
/*No:CALL_INFIX_AND.run_feature*/
T0* r125runnable_args(T0* a1,T0* a2){
T0* R=NULL;
R=r152to_runnable(((T152*)a1),a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(r152start_position(((T152*)a1)));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
void r125standard_compile_target_to_jvm(T125* C){
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
X52jvm_check_class_invariant(r125result_type(C));
}
/*No:CALL_INFIX_AND.compile_to_jvm_assignment*/
/*No:CALL_INFIX_AND.fz_07*/
void r125compile_to_jvm_old(T125* C){
X109compile_to_jvm_old((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
/*No:CALL_INFIX_AND.jvm_assign*/
/*No:CALL_INFIX_AND.jvm_branch_if_false*/
/*No:CALL_INFIX_AND.compile_to_jvm*/
/*No:CALL_INFIX_AND.arg_count*/
void r125with(T125* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
C->_target=a1;
C->_feature_name=a2;
C->_arguments=a3;
C->_run_feature=a4;
r125run_feature_match(C,a5);
}
/*No:CALL_INFIX_AND.call_proc_call_c2jvm*/
/*No:CALL_INFIX_AND.is_result*/
/*No:CALL_INFIX_AND.fatal_error*/
void r125run_feature_match(T125* C,T0* a1){
r125run_feature_has_result(C);
r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
}
/*No:CALL_INFIX_AND.arguments*/
T0* r125runnable_expression(T0* a1,T0* a2){
T0* R=NULL;
R=X109to_runnable(a1,a2);
/*[IF*/
if((R)==((void*)(NULL))){
r21add_position(X109start_position(a1));
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
return R;
}
/*No:CALL_INFIX_AND.can_be_dropped*/
/*No:CALL_INFIX_AND.implicit_cast*/
/*No:CALL_INFIX_AND.compile_target_to_jvm*/
/*No:CALL_INFIX_AND.isa_dca_inline_argument*/
/*No:CALL_INFIX_AND.arg1*/
void r125run_feature_has_result(T125* C){
/*[IF*/
if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
r21add_position(X27start_position((C)->_run_feature/*16*/));
r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
/*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
r21fatal_error((T21*)(oBC12eh),b1);
}/*]*/
}
/*FI]*/
}
T2 r125jvm_standard_branch_if_false(T125* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifeq((T28*)(oBC12code_attribute));
return R;
}
T0* r125run_feature_for(T125* C,T0* a1,T0* a2){
T0* R=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type(a1));
R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
return R;
}
/*No:CALL_INFIX_AND.target*/
void r125error(T0* a1,T0* a2){
r21add_position(a1);
r21error((T21*)(oBC12eh),a2);
}
void r125make(T125* C,T0* a1,T0* a2,T0* a3){
C->_target=a1;
{T141*n=malloc(sizeof(*n));
*n=M141;
r141make(n,r125operator(),a2);
C->_feature_name=(T0*)n;
}
{T152*n=malloc(sizeof(*n));
*n=M152;
/*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
/*]*/
C->_arguments=(T0*)n;
}
}
/*No:CALL_INFIX_AND.is_current*/
T2 r125standard_compile_to_jvm_into(T125* C,T0* a1){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=X52jvm_convert_to(X52run_type(r125result_type(C)),a1);
return R;
}
/*No:CALL_INFIX_AND.is_void*/
/*No:CALL_INFIX_AND.us_and*/
T0* r125operator(void){
T0* R=NULL;
R=((T0*)ms14_939);
return R;
}
T2 r125jvm_standard_branch_if_true(T125* C){
T2 R=0;
/*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T125* C1=C;
r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
}/*]*/
/*]*/
R=r28opcode_ifne((T28*)(oBC12code_attribute));
return R;
}
void r125afd_check(T125* C){
T0* _running=NULL;
T0* _rc=NULL;
_rc=X52run_class(X109result_type((C)->_target/*4*/));
_running=(((T23*)_rc))->_running/*12*/;
/*[IF*/
if((_running)==((void*)(NULL))){
r21add_position(X109start_position((C)->_target/*4*/));
/*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
/*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
r7append((T7*)(oBC21explanation),b1);
}/*]*/
r21print_as_warning((T21*)(oBC12eh));
r23set_at_run_time(((T23*)_rc));
}
else if((r340count(((T340*)_running)))>(1)){
r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
}
/*FI]*/
X109afd_check((C)->_target/*4*/);
/*[IF*/
{/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
}
/*FI]*/
}
T0* r336jvm_root_class(void){
if(fBC12jvm_root_class==0){
fBC12jvm_root_class=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_class=(T0*)n;
}
r7copy(((T7*)oBC12jvm_root_class),((T24*)(oBC12jvm))->_output_name/*0*/);
r7extend(((T7*)oBC12jvm_root_class),'\57');
r7append(((T7*)oBC12jvm_root_class),((T0*)ms13_1732));
}
return oBC12jvm_root_class;}
void r336jvm_mapping(T0* a1){
int _switch=0;
T0* _fal=NULL;
T0* _eal=NULL;
T0* _target=NULL;
T0* _up_rf=NULL;
T2 _stack_level=0;
T2 _idx=0;
_target=/*X121target*/((T0*)(((T135*)a1))->_target/*4*/);
_up_rf=X121run_feature(a1);
_eal=X121arguments(a1);
X109compile_to_jvm(_target);
_stack_level=1;
/*[IF*/
if((_eal)!=((void*)(NULL))){
_fal=X27arguments(_up_rf);
_stack_level=(_stack_level)+(r152compile_to_jvm(((T152*)_eal),_fal));
}
/*FI]*/
/*[IF*/
if((X27result_type(_up_rf))!=((void*)(NULL))){
_stack_level=(_stack_level)-(X52jvm_stack_space(X27result_type(_up_rf)));
}
/*FI]*/
_idx=r336idx_methodref(_up_rf);
r28opcode_invokestatic((T28*)(oBC12code_attribute),_idx,-(_stack_level));
}
/*No:SWITCH.fz_jvm_root*/
T0*oBC336running=NULL;
T2 r336idx_methodref(T0* a1){
T2 R=0;
R=r29idx_methodref3((T29*)(oBC12constant_pool),r336jvm_root_class(),r336name(a1),r336jvm_descriptor(a1));
return R;
}
T0*oBC336c_code=NULL;
void r336jvm_switch(T0* a1,T0* a2){
T0* _dynamic_na=NULL;
T0* _static_na=NULL;
T0* _ca=NULL;
T6 _boost=0;
T0* _dyn_rf=NULL;
T0* _dyn_rc=NULL;
T2 _i=0;
T2 _point=0;
T2 _space=0;
_ca=oBC12code_attribute;
_boost=r76boost((T76*)(oBC12run_control));
_i=((T340*)(oBC336running))->_upper/*8*/;
while (!((_i)==(0))) {
_dyn_rc=r340item((T340*)(oBC336running),_i);
_dyn_rf=r23dynamic(((T23*)_dyn_rc),a1);
/*[IF*/
if(((_i)==(1))&&(_boost)){
}
else{
/*[IRF3.4opcode_aload_0*/r28opcode(((T28*)_ca),42,1);
/*]*/
r23opcode_instanceof((T23*)(X27run_class(_dyn_rf)));
_point=r28opcode_ifeq(((T28*)_ca));
}
/*FI]*/
r24push_switch((T24*)(oBC12jvm),_dyn_rf,a1);
X27mapping_jvm(_dyn_rf);
r24pop((T24*)(oBC12jvm));
/*[IF*/
if((a2)==((void*)(NULL))){
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*]*/
}
else if(X52is_native_array(a2)){
_static_na=X52run_type(a2);
if(NULL!=(_static_na))switch(((T0*)_static_na)->id) {
case 267:
break;
default:
_static_na=NULL;
};_dynamic_na=X52run_type(X27result_type(_dyn_rf));
if(NULL!=(_dynamic_na))switch(((T0*)_dynamic_na)->id) {
case 267:
break;
default:
_dynamic_na=NULL;
};/*[IF*/
if((r267run_time_mark(((T267*)_static_na)))==((void*)(r267run_time_mark(((T267*)_dynamic_na))))){
/*[IRF3.2jvm_return_code*//*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{T2 b1=176;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*]*/
/*]*/
}
else if((r267of_references(((T267*)_static_na)))&&(r267of_references(((T267*)_dynamic_na)))){
/*[IRF3.2jvm_return_code*//*[IRF3.2opcode_areturn*//*[IRF3.6add_u1*/{T2 b1=176;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*]*/
/*]*/
}
else{
/*[IF*/
if(r76no_check((T76*)(oBC12run_control))){
r28runtime_error(((T28*)_ca),X27start_position(a1),/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/),((T0*)ms336_534786));
}
/*FI]*/
/*[IRF3.4opcode_pop*/r28opcode(((T28*)_ca),87,-(1));
/*]*/
_space=X52jvm_push_default(a2);
X52jvm_return_code(a2);
}
/*FI]*/
}
else{
_space=X52jvm_convert_to(X27result_type(_dyn_rf),a2);
X52jvm_return_code(a2);
}
/*FI]*/
/*[IF*/
if(((_i)==(1))&&(_boost)){
}
else{
r28resolve_u2_branch(_point);
}
/*FI]*/
_i=(_i)-(1);
}
/*[IF*/
if(!(_boost)){
/*[IRF3.4opcode_aload_0*/r28opcode(((T28*)_ca),42,1);
/*]*/
r28runtime_error_bad_target(((T28*)_ca),X27start_position(a1),/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/),((T0*)ms336_565005));
/*[IF*/
if((a2)==((void*)(NULL))){
/*[IRF3.2opcode_return*//*[IRF3.6add_u1*/{T2 b1=177;
r48add_last((T48*)(oBC28code),b1);
}/*]*/
/*]*/
}
else{
_space=X52jvm_push_default(a2);
X52jvm_return_code(a2);
}
/*FI]*/
}
/*FI]*/
}
T0*oBC336tmp_jvmd=NULL;
void r336jvm_define(T0* a1){
T0* _rt=NULL;
r39start((T39*)(oBC12method_info),9,r336name(a1),r336jvm_descriptor(a1));
r340copy((T340*)(oBC336running),((T23*)(X52run_class(/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/))))->_running/*12*/);
_rt=X27result_type(a1);
/*[IF*/
if((_rt)!=((void*)(NULL))){
_rt=X52run_type(_rt);
}
/*FI]*/
r336jvm_switch(a1,_rt);
r39finish((T39*)(oBC12method_info));
}
T0* r336name(T0* a1){
T0* R=NULL;
/*[IRF3.3clear*/((((T7*)((T7*)(oBC336c_code))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC336c_code),'X');
r2append_in(X52id(/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/)),oBC336c_code);
r7append((T7*)(oBC336c_code),X50to_key(/*X27name*/((T0*)(((T26*)a1))->_name/*16*/)));
R=oBC336c_code;
return R;
}
/*No:SWITCH.fz_19*/
T0* r336jvm_root_descriptor(void){
if(fBC12jvm_root_descriptor==0){
fBC12jvm_root_descriptor=1;
{T7*n=malloc(sizeof(*n));
*n=M7;
r7make(n,12);
oBC12jvm_root_descriptor=(T0*)n;
}
r7extend(((T7*)oBC12jvm_root_descriptor),'L');
r7append(((T7*)oBC12jvm_root_descriptor),r336jvm_root_class());
r7extend(((T7*)oBC12jvm_root_descriptor),'\73');
}
return oBC12jvm_root_descriptor;}
T0* r336jvm_descriptor(T0* a1){
T0* R=NULL;
T0* _rt=NULL;
T0* _arguments=NULL;
_arguments=X27arguments(a1);
/*[IRF3.3clear*/((((T7*)((T7*)(oBC336tmp_jvmd))))->_count)=(0);
/*]*/
r7extend((T7*)(oBC336tmp_jvmd),'\50');
r7append((T7*)(oBC336tmp_jvmd),r336jvm_root_descriptor());
/*[IF*/
if((_arguments)!=((void*)(NULL))){
r191jvm_descriptor_in(((T191*)_arguments),oBC336tmp_jvmd);
}
/*FI]*/
_rt=X27result_type(a1);
/*[IF*/
if((_rt)==((void*)(NULL))){
r7append((T7*)(oBC336tmp_jvmd),((T0*)ms13_260));
}
else{
_rt=X52run_type(_rt);
r7extend((T7*)(oBC336tmp_jvmd),'\51');
/*[IF*/
if(X52is_reference(_rt)){
r7append((T7*)(oBC336tmp_jvmd),r336jvm_root_descriptor());
}
else{
X52jvm_descriptor_in(_rt,oBC336tmp_jvmd);
}
/*FI]*/
}
/*FI]*/
R=oBC336tmp_jvmd;
return R;
}